import java.util.Scanner;
import java.util.Random;
public class Test {
    public static void main1(String[] args) {
        //分支结构
        //if语句
        int score = 20;
        if(score>90){
            System.out.println("去线下！！");
        }else{
            System.out.println("买张专辑");
        }
    }
public static void main2(String[] args) {
    //switch
    //记得break不能省略
    //不能做switch的数据类型有哪些 -- float double long
    int a = 1;
    switch(a){
        case 1:
            System.out.println("1");
            break;
        case 2:
            System.out.println("2");
            break;
        case 3:
            System.out.println("3");
            break;
    }
    String str = "MARS";
    switch(str){
        case "ab":
            System.out.println("H");
            break;
        case "MARS":
            System.out.println("六专爆！！");
            break;
    }

}
public static void main3(String[] args) {
    //循环结构
    //while循环

    //打印1-10的数字
    int num=1;
    while(num<=10){
        System.out.println(num);
        num++;
    }

    //打印1-100的和
    int sum=0;
    int i=1;
    while(i<=100){
        sum+=i;
        i++;
    }
    System.out.println(sum);//5050

}

    public static void main4(String[] args) {
        //计算5的阶乘
     /*   int i = 1;
        int ret = 1;
        while(i<=5){
            ret *= i;
            i++;
        }
        System.out.println(ret);*///120

        //计算1!+2!+3!+4!+5!
       int k = 1;
       int ret = 1;
       int sum = 0;
       int i = 1;
       while(k<=5){
           while(i<=5){
               ret *= i;
               i++;
           }
           k++;
           sum+=ret;
       }
        System.out.println(sum);//600
    }

    public static void main5(String[] args) {
     //编写程序数一下 1到 100 的所有整数中出现多少个数字9
        int i = 0;
        int count = 0;
        for(i = 1;i <= 100;i++){
            if(i>=9&&i/10==9){
                count++;
            }
        }
        for(i=1;i<=100;i++){
            if(i%10==9){
                count++;
            }
        }
        System.out.println(count);
    }

    public static void main6(String[] args) {
        //计算分数的值 1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
            int i = 0;
            double sum = 0;
            int s = 1;
            for(i = 1;i <= 100;i++){
                sum += s * (1.0/i);
                s = -s;
            }
        System.out.println(sum);
    }

    public static void main7(String[] args) {
        //输入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的姓名：");
        String name = sc.nextLine();
        System.out.println("请输入你的年龄：");
        int age = sc.nextInt();
        System.out.println("请输入你的工资");
        float sal = sc.nextFloat();
        System.out.println("你的信息如下");
        System.out.println("姓名:"+name+"\n"+"年龄"+age+"\n"+"工资"+sal+"\n");
        sc.close();//注意 可以认为scan是一个资源 不用时需要关闭
                   //记得调用关闭方法
    }

    public static void main8(String[] args) {
        //使用scanner循环读取N个数字，并求其平均值
        Scanner scan = new Scanner(System.in);
        while(scan.hasNextInt()){
            int age = scan.nextInt();
            System.out.println(age);//ctr+d 结束输入
        }
        scan.close();
    }
    public static void main9(String[] args) {
        //完成猜数字游戏   ，用户输入数字，判断该数字是大于，小于，还是等于随机生成的数字，等于的时候退出程序。
        Scanner scan = new Scanner(System.in);
        Random random = new Random();
        int randNum = random.nextInt(100);
        while(true){
            System.out.println("请输入你要猜的数字：");
            int num = scan.nextInt();
            if(num < randNum){
                System.out.println("猜低了");
            }else if(num > randNum){
                System.out.println("猜高了");
            }else{
                System.out.println("猜对了");
                break;
            }
        }
    }

    public static void main10(String[] args) {
        //打印素数
        //int n = 19;

        for(int n=0;n<=100;n++) {
            int i=2;
            for (; i <= Math.sqrt(n); i++) {
                if (n % i == 0) {
                    break;
                }
            }
            if (i > Math.sqrt(n)) {
                System.out.println(n + "是素数！");
            }
        }
    }

    public static void main11(String[] args) {
        //水仙花数
        int i=0;
        for(i=0;i<9999;i++){
            int count = 0;
            int tmp = i;

            while(tmp != 0){
                tmp /= 10;
                count++;
            }
            tmp = i;
            int sum = 0;
            while(tmp != 0){
                sum +=Math.pow(tmp%10,count);
                tmp /= 10;
            }
            if(sum == i){
                System.out.println(i);
            }
        }
    }

    public static void main12(String[] args) {
        //返回二进制中1的个数
        int n = 5;
        int count = 0;
        while(n != 0) {
            n = n & (n - 1);
            count++;
        }
        System.out.println(count);
    }
    public static void main13(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int a = in.nextInt();
            for(int i = 0; i < a; i++){
                for(int j = 0; j < a; j++){
                    if(i == j || i+j==(a-1)){
                        System.out.print("*");
                    }else{
                        System.out.print(" ");
                    }
                }
                System.out.println();
            }
        }
    }

    public static void main14(String[] args) {
        //输出一个整数的每一位
        int num = 568;
        while(num != 0){
            System.out.println(num%10);
            num /= 10;
        }
    }

    public static void main15(String[] args) {
        //编写代码模拟三次密码输入的场景。 最多能输入三次密码，密码正确，提示“登录成功”,密码错误
        // 可以重新输 入，最多输入三次。三次均错，则提示退出程序
        Scanner in = new Scanner(System.in);
        int count = 3;
        while(count != 0){
            System.out.println("请输入你的密码,你还有"+count+"次机会");
            String pass = in.nextLine();
            if(pass.equals("08042") ){
                System.out.println("登陆成功");
                break;
            }else{
                count--;
                System.out.println("密码错误");
            }
        }
    }

    public static void main16(String[] args) {
        //获取一个数二进制序列中所有的偶数位和奇数位， 分别输出二进制序列
        int n = 7;
        /*for(int i = 0;i<32;i++){
            System.out.println(((n>>i)&1)+" ");
        }*/
        for(int i = 30 ; i >= 0 ; i -= 2){
            System.out.print(((n>>i)&1)+" ");//
        }
        System.out.println("\n");
        for(int i = 31; i >= 0 ; i -= 2){
            System.out.print(((n>>i)&1)+" ");//
        }
    }

    public static void main(String[] args) {
        //给定两个数，求这两个数的最大公约数
        //例如：
        //输入：20 40
        //输出：20
        Scanner in = new Scanner(System.in);
        int a = 24;
        int b = 18;
        int c = a%b;
        while(c != 0){
            a = b;
            b = c;
            c = a%b;
        }
        System.out.println(b);
    }
}
